A server typically includes a computer program or a device that provides functionality for other programs or devices. This style of architecture allows for a single computation to be distributed across multiple processes or devices. As such, servers can provide various functionalities.
Moreover, remote access to, and/or control over, a server is typically achieved by coupling the server to an Ethernet access connection. However, multiple servers may be stored in a given server rack (or chassis), where some racks are able to hold 40 servers or more. Thus, a rack storing 40 servers may have 40 wired Ethernet connections, each leading to a switch somewhere in the rack.
A mid-level server typically includes a baseboard management controller (BMC) which is responsible for checking and reporting the health of the server. The BMC from one vendor to the next may have different interfaces for the user to access the error information, or in some cases, the error information is not accessible at all from the BMC. Each server vendor designs the BMC with a different set of capabilities and interfaces, making the access of error information often vendor-specific. There are common interfaces, such as Intelligent Platform Management Interface (IPMI), that generally cover errors but may not report all errors asserted by the operating system, e.g., such as Peripheral Component Interconnect Express (PCIe) slot errors for a Non-Volatile Memory Express (NVMe) drive. Furthermore, for ultra-low-end servers, there may not even be a BMC in the server (e.g., such as for desktop-class servers), and therefore there is no ability to access out-of-band errors.
Each of the servers also typically include light indicators, e.g., light emitting diodes (LEDs), integrated with the outer surface of a housing thereof. Each of the light indicators correspond to a particular aspect of the associated server, and may thereby be used to display different statuses of a server by selectively outputting optical signals from the light indicators. Thus, it is often easier for a user (e.g., such as the datacenter administrator) to walk the aisles of a conventional datacenter having a plurality of servers looking for errors rather than attempting to manage the different BMCs associated with the various servers in the datacenter. However, with a large number of servers in a given data center or storage rack thereof, it is exceedingly difficult to efficiently determine what the optical signals of the various light indicators are, much less determine when an optical signal of any of the light indicators on any one of the servers has changed. As such, there is increased likelihood of servers not being serviced properly.
Thus, it would be beneficial to provide systems, methods, computer program products and the like which overcome these server light indicator shortcomings. Accordingly, the ability to efficiently detect and decode the optical signals from multiple light indicators on various servers in a rack is desirable.